NAD
Данное руководство описывает быструю настройку интеграции (автоматическую загрузку индикаторов компрометации (IoC)) Solar TI Feeds Agent с Positive Technologies Network Attack Discovery (PT NAD).
Предварительные требования
- Установленный и настроенный Solar TI Feeds Agent;
- Учетные данные для доступа к PT NAD;
- Доступ к серверу TI Feeds с действительным JWT-токеном.
Конфигурация интеграции
Данная интеграция автоматизирует выгрузку индикаторов компрометации из Solar TI Feeds в PT NAD. Для получения индикаторов угроз создается пайплайн обработки, обеспечивающий получение, преобразование и загрузку данных.
Для подключения к СЗИ используется basic аутентификация.
Переменные окружения
Для работы интеграции необходимо определить следующие переменные окружения:
Переменные для интеграции с PT NAD
- TIC_AGENT_SERVICE_HOST - Хост или IP-адрес сервера PT NAD
- TIC_AGENT_SERVICE_PORT - Порт для подключения к API PT NAD
- TIC_AGENT_SERVICE_USER - Имя пользователя для аутентификации в PT NAD
- TIC_AGENT_SERVICE_PASSWORD - Пароль для аутентификации в PT NAD
Структура пайплайнов для PT NAD
Каждый пайплайн состоит из следующих компонентов:
- FeedsGenerator — получает индикаторы из Solar TI Feeds.
- IndicatorsTextMap — преобразует данные в текстовый формат, пригодный для загрузки.
- IndicatorsTextSink — сохраняет данные в CSV-файл и загружает их в PT NAD.
Конфигурация автоматически создает отдельный пайплайн для каждого фида из списка allFeedsList. При необходимости вы можете изменить этот список, указав только нужные фиды.
Пример настройки списка фидов:
local feedsList = List(
"c2",
"botnet",
"stealer",
"ransomware",
"cryptomining",
"apt",
"phishing",
"active_c2",
"honeypot_attacker",
"honeypot_payload",
"intrusion"
)
Справочник параметров для PT NAD
Ключевые параметры конфигурации для PT NAD приведены в таблице:
| Параметр | Тип данных | Значение по умолчанию | Обязательность | Описание | Пример |
|---|---|---|---|---|---|
| credentials | Credentials | Да | Данные для аутентификации | credentials = new agent.Basic {username = nad_User password = nad_Password} | |
| address | Address | Да | Данные подключения | address {host = nad_Host port = nad_Port insecureSkipVerify = true scheme = "https"} | |
| timeout | Duration | 30.s | Нет | Таймаут запросов | 60.s |
| listName | String | Да | Имя списка для загрузки данных | “4rays_feeds” |
Параметры конфигурации NadCfg
Дополнительные параметры конфигурации для расширения ServiceConfig – NadCfg:
| Параметр | Тип данных | Обязательность | Описание | Возможные значения |
|---|---|---|---|---|
| color | String | Да | Цвет списка для загрузки индикаторов | white, red, black, grey, yellow, blue, green, orange |
| listType | String | Да | Тип репутационного списка | ip, dn, uri, md5 |
Полный пример конфигурационного файла для интеграции с PT NAD
amends "package://pkg.pkl-lang.org/github.com/pipelane/pipelaner/pipelaner@1.3.1#/Pipelaner.pkl"
import "package://pkg.pkl-lang.org/github.com/pipelane/pipelaner/pipelaner@1.3.1#/source/Components.pkl"
import "../agent.pkl"
import "../templates.pkl"
pipelines {
new Components.Pipeline {
name = "nad_config"
inputs {
new agent.FeedsGenerator {
name = "indicators-generator"
server = templates.serverEnvCfg
schedule = templates.scheduleCron5MinCfg
filter = new agent.IndicatorRequestParams {
actions = List("create", "update")
types = List("md5-hash")
feedNames = List("malicious")
fields = List("value")
iter {
limit = 1000
}
}
sqlite = templates.sqliteEnvCfg
}
}
transforms {
new agent.IndicatorsTextMap {
name = "map_domain"
inputs {
"indicators-generator"
}
fieldsMap {
["value"] = "Value"
}
}
}
sinks {
new agent.IndicatorsTextSink {
name = "sink_domain"
inputs {
"map_domain"
}
writer {
outputDirectory = templates.outputDirEnv
outputFileName = "iocs.txt"
writeMode = "replace"
fileFormat = "txt"
}
sqlite = templates.sqliteEnvCfg
service = new agent.NadCfg {
address {
host = templates.externalServiceHostEnv
port = templates.externalServicePortEnv
insecureSkipVerify = true
scheme = "https"
}
credentials = new agent.Basic {
username = templates.externalServiceUserEnv
password = templates.externalServicePasswordEnv
}
timeout = 20.s
listName = "4rays_malicious_hashes"
color = "black"
listType = "md5"
}
}
}
}
}
settings {
gracefulShutdownDelay = 600.s
logger {
logLevel = "info"
logFormat = "json"
enableConsole = true
}
healthCheck {
}
metrics {
serviceName = "agent"
}
}
Мониторинг результатов работы интеграции
После запуска агента убедитесь в корректности работы интеграции:
- Проверка файлов результатов: Убедитесь, что в рабочей директории (TIC_AGENT_OUTPUT_DIR) создаются CSV-файлы с именами соответствующих фидов.
- Анализ логов: Проверьте логи агента в директории TIC_AGENT_LOG_DIR на наличие ошибок или предупреждений.
- Верификация в PT NAD: В интерфейсе PT NAD убедитесь, что созданы списки индикаторов с префиксом 4rays_ и что они содержат актуальные данные.